using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("SerializedGameObject")]
	public class SerializedGameObject : MonoClass
	{
		public static Dictionary<int, object> s_instanceIDMapping => MonoClass.smethod_7<Class253<int, object>>(TritonHs.MainAssemblyPath, "", "SerializedGameObject", "s_instanceIDMapping")?.method_25();

		public string name => method_4("name");

		public int instanceId => method_2<int>("instanceId");

		public List<string> behaviourTypes => method_3<Class249>("behaviourTypes")?.method_25();

		public List<int> behaviousInstanceIds => method_3<Class250<int>>("behaviousInstanceIds")?.method_25();

		public List<string> serializedBehaviours => method_3<Class249>("serializedBehaviours")?.method_25();

		public List<string> children => method_3<Class249>("children")?.method_25();

		public bool isScene => method_2<bool>("isScene");

		public GameObject inflatedGameObject => method_3<GameObject>("inflatedGameObject");

		public List<SerializedGameObject> inflatedChildren => method_3<Class251<SerializedGameObject>>("inflatedChildren")?.method_25();

		public SerializedGameObject(IntPtr address, string className)
			: base(address, className)
		{
		}

		public SerializedGameObject(IntPtr address)
			: this(address, "SerializedGameObject")
		{
		}

		public static SerializedGameObject ConstructFromScene()
		{
			return MonoClass.smethod_15<SerializedGameObject>(TritonHs.MainAssemblyPath, "", "SerializedGameObject", "ConstructFromScene", Array.Empty<object>());
		}

		public static GameObject UltimateParent(Component potentialChild)
		{
			return MonoClass.smethod_15<GameObject>(TritonHs.MainAssemblyPath, "", "SerializedGameObject", "UltimateParent", new object[1] { potentialChild });
		}

		public void Reinflate(GameObject gameObject)
		{
			method_8("Reinflate", gameObject);
		}

		public void Relink()
		{
			method_8("Relink");
		}
	}
}
